#ifndef __CacheManager_H__
#define __CacheManager_H__

#include "LRUCache.h"
#include <vector>
#include <string>
#define CACHE_NUMBER 4
using std::string;
using std::vector;

//单例类
class CacheManager
{
    CacheManager();
    ~CacheManager();
public:
    static CacheManager* getInstance();
    static void destory();

    void init(const string filename);         //将持久化到磁盘的缓存数据重新加载到内存,调用LRUCache类中的方法
    LRUCache& getCache(int);             //参数int:每一个线程对应一个缓存，线程去获取缓存
    void updateCache();                 //同步更新几个缓存内部的数据,每个缓存里边的热数据很有可能不一致，需要同步
private:
    static CacheManager* _pInstance;
    vector<LRUCache> _caches;
};




#endif
